package com.bjb.vr.common.dto;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 分组表
 * @TableName res_group
 */
@TableName(value ="res_group")
@Data
public class ResGroup implements Serializable {
    /**
     *
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 租户ID
     */
    @TableField(value = "tenant_id", fill = FieldFill.INSERT)
    private String tenantId;

    /**
     * 数据ID用于同步
     */
    @TableField(value = "data_id", fill = FieldFill.INSERT)
    private Long dataId;

    /**
     * 用户ID
     */
    @TableField(value = "account_id", fill = FieldFill.INSERT)
    private Long accountId;

    /**
     * 组名
     */
    @TableField(value = "group_name")
    private String groupName;

    /**
     * 组编码
     */
    @TableField(value = "group_code")
    private String groupCode;

    /**
     * 内容id -1:初始状态
     */
    @TableField(value = "content_id")
    private Long contentId;

    /**
     * 小节序号 -1:初始状态
     */
    @TableField(value = "section_no")
    private Integer sectionNo;

    /**
     * 1:上课 2:下课 3:播放 4:暂停 -1:初始状态
     */
    @TableField(value = "class_state")
    private Integer classState;

    /**
     * 1:开启 2:静音 -1:初始状态
     */
    @TableField(value = "sound_state")
    private Integer soundState;

    /**
     * 1:锁定 2:解锁 -1:初始状态
     */
    @TableField(value = "lock_state")
    private Integer lockState;

    /**
     * 1:播放 2:暂停 3:继续 -1:初始状态
     */
    @TableField(value = "play_state")
    private Integer playState;

    /**
     * 1:教学 2:自由 -1:初始状态
     */
    @TableField(value = "ctrl_mode_state")
    private Integer ctrlModeState;

    /**
     * 教师端websocket连接标识 1:连接 0:断开
     */
    @TableField(value = "adm_con_state")
    private Integer admConState;

    /**
     * 教师端websocket断开时间
     */
    @TableField(value = "adm_off_time")
    private LocalDateTime admOffTime;

    /**
     * 视频播放当前进度 毫秒 -1:初始状态
     */
    @TableField(value = "timeline")
    private Integer timeline;

    /**
     * 位置json串
     */
    @TableField(value = "position")
    private String position;

    /**
     * 是否有效 1:有效 0:无效
     */
    @TableField(value = "state")
    private Integer state;

    /**
     * 资源包同步开关 1：开启资源同步 2：关闭资源同步
     */
    @TableField(value = "bundle_update_switch")
    private Integer bundleUpdateSwitch;

    /**
     * 关联资源包ID
     */
    @TableField(value = "bundle_id")
    private Long bundleId;

    /**
     * 主题类型
     */
    @TableField(value = "theme_code")
    private String themeCode;

    /**
     * 创建时间
     */
    @TableField(value = "gmt_create")
    private LocalDateTime gmtCreate;

    /**
     * 修改时间
     */
    @TableField(value = "gmt_modified")
    private LocalDateTime gmtModified;

    /**
     * 最大储存空间
     */
    @TableField(value = "capacity")
    private Long capacity;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
